/*
 * File Name：CWResource.java
 * Copyright：Copyright 2008-2014 CiWong.Inc. All Rights Reserved.
 * Description： CWResource.java
 * Modify By：res-jxliu
 * Modify Date：2014-5-28
 * Modify Type：Add
 */
package com.ciwong.libs.utils;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;

/**
 * 资源文件处理类
 * 
 * @author res-jxliu
 * @version ciwong v.1.0 2014-5-28
 * @since ciwong v.1.0
 */
public class CWResource
{
    protected static Context mContext;

    /**
     * 设置上下文，供后面使用<br />
     * 注:此方法必须要在应用开启时或是调用内部方法前调用<br />
     * 否则可能会报空指针异常
     * 
     * @param context
     *            上下文
     */
    public static void setContext(Context context)
    {
        mContext = context;
    }

    /**
     * 
     * 获取上下文
     * 
     * @return mContext
     */
    public static Context getContext()
    {
        return mContext;
    }

    private static Resources getResources()
    {
        return mContext.getResources();
    }

    /**
     * 获取图片资源
     * 
     * @param resName
     *            图片资源对应的名称，不含后缀
     * 
     * @return Drawable
     */
    public static Drawable getDrawable(String resName)
    {
        Drawable drawable = null;
        Resources res = getResources();
        drawable = res.getDrawable(res.getIdentifier(resName, "drawable",
                mContext.getPackageName()));
        return drawable;
    }

    /**
     * 获取图片资源ID
     * 
     * @param resName
     *            图片资源对应的名称，不含后缀
     * 
     * @return 资源ID
     */
    public static int getDrawableId(String resName)
    {
        Resources res = getResources();
        return res
                .getIdentifier(resName, "drawable", mContext.getPackageName());
    }

    /**
     * 获取布局资源
     * 
     * @param resName
     *            图片资源对应的名称，不含后缀
     * 
     * @return 而已文件ID
     */
    public static int getLayout(String resName)
    {
        int layoutId = 0;
        Resources res = getResources();
        layoutId = res.getIdentifier(resName, "layout",
                mContext.getPackageName());
        return layoutId;
    }

    /**
     * 获取Strings资源
     * 
     * @param resName
     *            Strings资源对应的名称，不含后缀
     * 
     * @return string资源的值
     */
    public static String getString(String resName)
    {
        int strRes = 0;
        Resources res = getResources();
        strRes = res
                .getIdentifier(resName, "string", mContext.getPackageName());
        return res.getString(strRes);
    }

    /**
     * 获取Strings资源
     * 
     * @param resName
     *            Strings资源对应的名称，不含后缀
     * 
     * @return 资源 ID
     */
    public static int getStringId(String resName)
    {
        int strRes = 0;
        Resources res = getResources();
        strRes = res
                .getIdentifier(resName, "string", mContext.getPackageName());
        return strRes;
    }

    /**
     * 获取Colors资源
     * 
     * @param resName
     *            Colors资源对应的名称，不含后缀
     * 
     * @return 颜色值
     */
    public static int getColor(String resName)
    {
        int strRes = 0;
        Resources res = getResources();
        strRes = res.getIdentifier(resName, "color", mContext.getPackageName());
        return res.getColor(strRes);
    }

    /**
     * 获取Colors资源
     * 
     * @param resName
     *            Colors资源对应的名称，不含后缀
     * 
     * @return 颜色资源 ID
     */
    public static int getColorId(String resName)
    {
        int strRes = 0;
        Resources res = getResources();
        strRes = res.getIdentifier(resName, "color", mContext.getPackageName());
        return strRes;
    }

    /**
     * 获取Dimens资源
     * 
     * @param resName
     *            Dimens资源对应的名称，不含后缀
     * 
     * @return Dimens值
     */
    public static float getDimension(String resName)
    {
        int strRes = 0;
        Resources res = getResources();
        strRes = res.getIdentifier(resName, "dimen", mContext.getPackageName());
        return res.getDimension(strRes);
    }

    /**
     * 获取Dimens资源
     * 
     * @param resName
     *            Dimens资源对应的名称，不含后缀
     * 
     * @return Dimens资源ID值
     */
    public static int getDimensionId(String resName)
    {
        int strRes = 0;
        Resources res = getResources();
        strRes = res.getIdentifier(resName, "dimen", mContext.getPackageName());
        return strRes;
    }

    /**
     * 获取integer资源
     * 
     * @param resName
     *            integer资源对应的名称，不含后缀
     * 
     * @return Integer值
     */
    public static int getInteger(String resName)
    {
        int strRes = 0;
        Resources res = getResources();
        strRes = res.getIdentifier(resName, "integer",
                mContext.getPackageName());
        return res.getInteger(strRes);
    }

    /**
     * 获取integer资源
     * 
     * @param resName
     *            integer资源对应的名称，不含后缀
     * 
     * 
     * @return Integer资源ID值
     */
    public static int getIntegerId(String resName)
    {
        int strRes = 0;
        Resources res = getResources();
        strRes = res.getIdentifier(resName, "integer",
                mContext.getPackageName());
        return strRes;
    }

    /**
     * 获取integer资源
     * 
     * @param resName
     *            integer资源对应的名称，不含后缀
     * 
     * @return style ID值
     */
    public static int getStyles(String resName)
    {
        int strRes = 0;
        Resources res = getResources();
        strRes = res.getIdentifier(resName, "style", mContext.getPackageName());
        return strRes;
    }

    /**
     * 获取integer资源
     * 
     * @param resName
     *            integer资源对应的名称，不含后缀
     * 
     * @return style ID值
     */
    public static int getId(String resName)
    {
        int strRes = 0;
        Resources res = getResources();
        strRes = res.getIdentifier(resName, "id", mContext.getPackageName());
        return strRes;
    }

    /**
     * 获取资源ID
     * 
     * @param resName
     *            资源对应的名称，不含后缀
     * @param resType
     *            资源类型
     * 
     * @return 资源ID
     */
    public static int getIdentifier(String resName, String resType)
    {
        int strRes = 0;
        Resources res = getResources();
        strRes = res.getIdentifier(resName, resType, mContext.getPackageName());
        return strRes;
    }
}
